package com.zmn.oms.services.interfaces.detail;

import com.zmn.oms.model.entity.detail.OrderDetail;
import com.zmn.oms.model.vo.order.EsOrderDetailVO;

import java.util.List;

/**
 * 类描述：订单详情
 *
 * @author liuying
 * @date 2018/11/06 11:40
 */
public interface OrderDetailService {

    /**
     * 根据订单Id 查询列表
     *
     * @param orderIdList 订单id集合
     * @return 订单集合
     */
    List<EsOrderDetailVO> listEsOrderDetailByOrderIdList(List<Long> orderIdList);

    /**
     * 根据订单Id 查询列表
     *
     * @param orderIdList 订单id集合
     * @return 订单集合
     */
    List<OrderDetail> listOrderDetailByOrderIdList(List<Long> orderIdList);

    /**
     * 主库查询
     *
     * @param detailId
     * @return
     */
    OrderDetail findOrderDetailByKeySrcMaster(Long detailId);

    /**
     * 通过订单Id获取信息
     *
     * @param detailId 订单详情ID
     * @return
     */
    OrderDetail findOrderDetailByKey(Long detailId);

    /**
     * 动态查询orderDetail
     * @param queryStr
     * @param detailId
     * @return
     */
    OrderDetail findDynamicOrderDetailByKey(String queryStr, Long detailId);

    /**
     * 更多订单是否在服务范围
     *
     * @param detailId
     * @param inScopeService
     * @return
     */
    Integer updateOrderDetailScopeServiceByKey(Long detailId, Integer inScopeService);

    /**
     * 修改订单详情
     *
     * @param orderDetail 订单详情
     * @return
     */
    Integer updateOrderDetailByKey(OrderDetail orderDetail);

    /**
     * 修改订单详情地址
     *
     * @param orderDetail 订单详情
     * @return
     */
    Integer updateOrderDetailAddressByKey(OrderDetail orderDetail);


    /**
     * 新增订单详情
     *
     * @param orderDetail 订单详情
     * @return
     */
    Integer insertOrderDetail(OrderDetail orderDetail);

    /**
     * 获取手机号
     *
     * @param orderDetail 订单详情
     * @return
     */
    String getMobile(OrderDetail orderDetail);
}
